package com.shop.cereshop.agent.utils;
import java.util.regex.Pattern;

/**
 * @description: TODO : 密码工具类
 * @author lx
 * @date 2025/7/24 11:38
 * @version 1.0
 */
public class PwdValidUtil {
    /**
     * 密码格式校验
     * @param password 要校验的密码
     * @return
     */
    public static boolean isPasswordInvalid(String password) {
        // 检查长度：8-12位
        if (password == null || password.length() < 8 || password.length() > 12) {
            return true;
        }

        // 检查至少包含两种字符类型（字母、数字、符号）
        int categoryCount = 0;
        if (containsLetter(password)) categoryCount++;
        if (containsDigit(password)) categoryCount++;
        if (containsSymbol(password)) categoryCount++;

        return categoryCount < 2;
    }

    private static boolean containsLetter(String password) {
        return Pattern.compile("[a-zA-Z]").matcher(password).find();
    }

    private static boolean containsDigit(String password) {
        return Pattern.compile("[0-9]").matcher(password).find();
    }

    private static boolean containsSymbol(String password) {
        // 定义符号范围，根据需求调整
        return Pattern.compile("[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>/?]").matcher(password).find();
    }
}
